PHP 8.1 এ class constants-এ type declarations (টাইপ ডিক্লেয়ারেশন) ব্যবহার করার সুবিধা যুক্ত করা হয়েছে। এর মাধ্যমে আপনি ক্লাস কনস্ট্যান্টে নির্দিষ্ট টাইপ (যেমন int
, string
, bool
, array
, ইত্যাদি) নির্ধারণ করতে পারবেন। টাইপ ডিক্লেয়ারেশন ব্যবহারের মাধ্যমে আপনি নিশ্চিত করতে পারবেন যে কনস্ট্যান্টের মান একটি নির্দিষ্ট টাইপের হবে, যা কোডের সঠিকতা এবং নিরাপত্তা নিশ্চিত করতে সাহায্য করে।
এটি PHP এর স্ট্যাটিক টাইপ সিস্টেমের আরও একটি শক্তিশালী বৈশিষ্ট্য, যা কোডকে আরও পঠনযোগ্য, নির্ভরযোগ্য এবং টাইপ সেফ করে তোলে।
PHP 8.1-এ class constants-এ টাইপ ডিক্লেয়ারেশন ব্যবহারের মাধ্যমে আপনি কনস্ট্যান্টের মানের টাইপ নির্ধারণ করতে পারেন। এটি কেবলমাত্র ক্লাস কনস্ট্যান্টে ব্যবহৃত হয় এবং এটি নিশ্চিত করে যে কনস্ট্যান্টের মান সেই টাইপের হতে হবে।
class MyClass {
public const MY_INT_CONSTANT: int = 100;
public const MY_STRING_CONSTANT: string = 'Hello, world!';
public const MY_BOOL_CONSTANT: bool = true;
}
এখানে, MY_INT_CONSTANT
কনস্ট্যান্টটি int
টাইপের এবং এর মান 100, MY_STRING_CONSTANT
কনস্ট্যান্টটি string
টাইপের এবং এর মান 'Hello, world!'
, এবং MY_BOOL_CONSTANT
কনস্ট্যান্টটি bool
টাইপের এবং এর মান true
।
class AppConfig {
public const APP_NAME: string = 'My Application';
public const VERSION: string = '1.0.0';
public const MAX_USERS: int = 1000;
public const DEBUG_MODE: bool = false;
}
echo AppConfig::APP_NAME; // Output: My Application
echo AppConfig::VERSION; // Output: 1.0.0
echo AppConfig::MAX_USERS; // Output: 1000
echo AppConfig::DEBUG_MODE ? 'True' : 'False'; // Output: False
এখানে, AppConfig
ক্লাসে বিভিন্ন টাইপের কনস্ট্যান্ট ডিফাইন করা হয়েছে:
APP_NAME
ও VERSION
কনস্ট্যান্টগুলো string
টাইপের।MAX_USERS
কনস্ট্যান্টটি int
টাইপের।DEBUG_MODE
কনস্ট্যান্টটি bool
টাইপের।string
কনস্ট্যান্টে কখনও int
মান থাকতে পারবে না। এটি টাইপ সম্পর্কিত ত্রুটি কমিয়ে আনে।static analysis
টুল (যেমন PHPStan বা Psalm) ব্যবহার করবেন, টাইপ ডিক্লেয়ারেশন এর মাধ্যমে সেই টুলগুলো আরও সঠিকভাবে কোডের ত্রুটি চেক করতে সক্ষম হবে, যা কোডের গুণগত মান উন্নত করে।PHP 8.1-এ আপনি কনস্ট্যান্টে শুধুমাত্র স্কেলার টাইপের (যেমন int
, string
, bool
) মান না দিয়ে array বা object টাইপও ব্যবহার করতে পারবেন।
class Config {
public const VALID_ROLES: array = ['admin', 'editor', 'subscriber'];
public const DB_CONNECTION: \PDO = new \PDO('mysql:host=localhost;dbname=test', 'user', 'password');
}
এখানে:
VALID_ROLES
কনস্ট্যান্টটি একটি অ্যারে টাইপের।DB_CONNECTION
কনস্ট্যান্টটি একটি PDO
অবজেক্ট টাইপের।static
এবং নির্ধারিত হতে হবে। আপনি কোনো চলমান বা runtime এক্সপ্রেশন ব্যবহার করে কনস্ট্যান্টের টাইপ ডিক্লেয়ার করতে পারবেন না।PHP 8.1 এর class constants এ type declaration একটি শক্তিশালী বৈশিষ্ট্য, যা কোডের নিরাপত্তা, স্পষ্টতা এবং পূর্বানুমানযোগ্যতা বৃদ্ধি করে। এই বৈশিষ্ট্যটি টাইপ সেফটি নিশ্চিত করতে সহায়ক, বিশেষত যখন আপনি কনস্ট্যান্টগুলির মান নির্দিষ্ট টাইপে রাখতে চান। তবে, এটি ব্যবহার করার সময় কিছু সীমাবদ্ধতা রয়েছে, যেমন কনস্ট্যান্টের মানটি অবশ্যই পূর্বনির্ধারিত এবং runtime এর সময় পরিবর্তন করা যাবে না।
Read more